﻿#pragma once
#include "labelMasterDriver.hpp"
#include <ossDir.h>

class LogMaster:public LabelMasterDriver
{
public:
	LogMaster(LabelDeviceBase* pParent);
	virtual ~LogMaster(void);

	//如下为必须要求实现的方法;
    /**
     *      初始化实例的方法
     */
    virtual BOOL DeviceInit(OssJson& initJson) override;

	  /**
     *      逆初始化方法
     */
    virtual BOOL DeviceDeinit() override;

	/**
     *      开始主线程
    */
	virtual BOOL DeviceStart() override;

	/**
     *      停止主线程
    */
	virtual BOOL DeviceStop() override;

	//声明消息映射表
	DECLARE_OSS_MESSAGE_MAP()

	/**
	 *		获取日志信息请求
	 */
	int OnGetLogMsg(WPARAM wParam,LPARAM lParam);

private:
	void OnDeviceLogInfoReport(LdDataType tDataType,OssJson& jsonReportData);

	/**
	 *		初始化日志管理
	 */
	void InitLogMaster(OssJson& initJson);
private:
	HANDLE				m_hFileHandle;
	int					m_iFileIndex;
	int					m_iCurrSize;
	int					m_iFileMaxSize = 1024*1024;
	int					m_iFileNumMax = 10;
	char				m_acLogPath[OSS_MAX_PATH];
	OssCritical			m_fileCritical;
};

